package main

import "fmt"

/**
常量：
*/
func main() {
	const name = 10
	//name = 20  常量的值不能发生改变
	const bb bool = false
	//bb = true
	fmt.Printf("%t", bb)

	//常量声明可以使用iota初始化
	const (
		a = iota //0
		b = iota //1
		c = iota //2
	)
	fmt.Printf("a=%db=%dc=%d", a, b, c)

	//当iota遇到const，就会重置为0
	const d = iota
	fmt.Printf("%d", d) //0

	//const中只要是声明一个iota，下面对应的值都会加1
	const (
		x = iota //0
		y        //1
		z        //2
	)
	fmt.Printf("x=%d\ny=%d\nz=%d\n", x, y, z)

	const (
		xx = 10   //常量必须声明
		yy = iota //	1  虽然第二行才声明iota,但是值是根据行号进行计数的
		zz        //	2
	)
	fmt.Printf("xx=%d\nyy=%d\nzz=%d\n", xx, yy, zz)

	const (
		xxx           = 10               //常量必须声明
		yyy, aaa, bbb = iota, iota, iota //  1,1,1  同一行声明的值iota的值是一样的
		zzz           = iota             //这里的iota就不能省略了  2
	)
	fmt.Printf("xxx=%d\nyyy=%d\naaa=%d\nbbb=%d\nzzz=%d\n", xxx, yyy, aaa, bbb, zzz)
}
